﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;

namespace Neotic.DataAccess.Sql
{
    public interface ISelectQuery : ISelectQueryPart
    {
        ISelectQuery InnerJoinFirst(IRowCollection joinTable, ISqlCondition joinCdt);
        ISelectQuery LeftJoinFirst(IRowCollection joinTable, ISqlCondition joinCdt);
        ISelectQuery InnerJoin(IRowCollection joinTable, ISqlCondition joinCdt);
        ISelectQuery LeftJoin(IRowCollection joinTable, ISqlCondition joinCdt);
        ISelectQuery RightJoin(IRowCollection joinTable, ISqlCondition joinCdt);
        ISelectQuery Where(ISqlCondition whereClause);
        ISelectQuery Where(Expression<Func<ISqlCondition, object>> expression);
        IAgregatedQuery GroupBy(params ISelectColumn[] cols);
    }
}
